package com.knshare.utils;

/**
 * 字符串工具类
 *
 * @author 杨静 1475654312@qq.com
 */
public class StringUtils {

    /**
     * 空字符串
     */
    private static final String NULLSTR = "";

    /**
     * 下划线
     */
    private static final char UNDERLINECHAR = '_';


    /**
     * 判断一个字符串是否为空串
     *
     * @param str String
     * @return true：为空 false：非空
     */
    public static boolean isEmpty(String str) {
        return isNull(str) || NULLSTR.equals(str.trim());
    }

    /**
     * 判断一个字符串是否为非空串
     *
     * @param str String
     * @return true：非空串 false：空串
     */
    public static boolean isNotEmpty(String str) {
        return !isEmpty(str);
    }

    /**
     * 判断一个对象是否为空
     *
     * @param object Object
     * @return true：为空 false：非空
     */
    public static boolean isNull(Object object) {
        return object == null;
    }

    /**
     * 判断一个对象是否非空
     *
     * @param object Object
     * @return true：非空 false：空
     */
    public static boolean isNotNull(Object object) {
        return !isNull(object);
    }

    /**
     * 下划线转小驼峰
     *
     * @param str String
     * @return 小驼峰
     */
    public static String parseSmallHump(String str) {
        char[] c = str.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] == UNDERLINECHAR) {
                c[i+1] = (char)(c[i+1] - 32);
            }
        }
        str = String.valueOf(c).replace(String.valueOf(UNDERLINECHAR),NULLSTR);
        return str;
    }

    /**
     * 下划线转大驼峰
     *
     * @param str String
     * @return 大驼峰
     */
    public static String parseGreatHump(String str) {
        str = str.substring(0,1).toUpperCase() + str.substring(1);
        return parseSmallHump(str);
    }

    /**
     * 去除前导0
     *
     * @param str String
     * @return 去除前导0字符串
     */
    public static String removeLeadingZero(String str) {
        return str.replaceAll("^(0+)", "");
    }

    /**
     * 判断是否含有某些字符
     * @param str 被判断的字符串
     * @param str1 字符集合(字符串)
     * @return
     */
    public static  boolean isIncludeCharacter(String str,String str1){
        if (str1==null||str1.length()==0||str==null||str.length()==0){
            return  false;
        }
        char[] chars = str1.toCharArray();
        for (int i=0;i<chars.length;i++){
            boolean contains = str.contains(chars[i] + "");
            if (contains){
                return contains;
            }
        }
        return false;
    }
}
